package br.com.jk.cont.caixa;

import br.com.jk.empresa.Empresa;
import br.com.jk.util.DaoFactory;
import br.com.jk.util.parametro.ParametroData;
import br.com.jk.util.parametro.ParametroEmpresa;
import br.com.jk.util.pesquisa.Pesquisa;
import br.com.jk.util.pesquisa.Pesquisa.Opcao;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 *
 * @author camilo
 */
public class CaixaRn {

  private final CaixaDao dao;

  public CaixaRn() {
    this.dao = DaoFactory.criarCaixaDao();
  }

  public void salvar(Caixa forn) {
    this.dao.salvar(forn);
  }

  public List<Caixa> listar(ParametroData parData, ParametroEmpresa parEmp) {
    return this.dao.listar(parData, parEmp);
  }

  public List<Caixa> pesquisaPadrao(String property, String criterio, Opcao opcao) {
    return this.dao.pesquisaPadrao(property, criterio, opcao);
  }

  public List<Caixa> pesquisaPadrao(String property, int criterio, Opcao opcao) {
    return this.dao.pesquisaPadrao(property, criterio, opcao);
  }

  public Caixa carregar(int id) {
    return this.dao.carregar(id);
  }

  public void excluir(Caixa forn) {
    this.dao.excluir(forn);
  }

  public boolean setEnabledPesquisa(int colunaSel) {
    switch (colunaSel) {
      case CaixaTableModel.COLUNA_COD_DATA:
        return true;
      case CaixaTableModel.COLUNA_COD_DOC:
        return true;
      case CaixaTableModel.COLUNA_COD_ID:
        return true;
      case CaixaTableModel.COLUNA_COD_ID_CONTA_BANCO:
        return true;
      case CaixaTableModel.COLUNA_COD_ID_EMPRESA:
        return true;
      case CaixaTableModel.COLUNA_COD_ID_PLANO_CONTAS:
        return true;
      case CaixaTableModel.COLUNA_COD_VALOR:
        return true;
      default:
        return false;
    }
  }
  
  public BigDecimal getSaldoInicial(Empresa empresa, Date dataInicial){
    return this.dao.getSaldoInicial(empresa, dataInicial);
  }
  
  public BigDecimal getSaldoFinal(Empresa empresa, Date dataFinal){
    return this.dao.getSaldoFinal(empresa, dataFinal);
  }

  public void pesquisa(Pesquisa pesquisa) {
//  this.dao.pesquisaPadrao(pesquisa., null, Opcao.IGUAL)
  }
}
